#ifndef _BBOXUTIL_H
#define _BBOXUTIL_H

#include <Eigen/Dense>
#include "obstacle_detector/util.h"

namespace obstacle_detector
{
void bbox_nms(std::vector<Object> &obj);
float bbox_iou(const Object &obj1,
	const Object &obj2);
bool get_inter(const Eigen::Vector2f &p1,const Eigen::Vector2f &p2,
	const Eigen::Vector2f &p3,const Eigen::Vector2f &p4,
	Eigen::Vector2f &inter);
float compute_yaw(const Eigen::Vector2f &p1,const Eigen::Vector2f &p2);
float compute_polygon_area(std::vector<Eigen::Vector2f> &polygon);
void add2polygon(std::vector<Eigen::Vector2f> &polygon,
	Eigen::Vector2f &point);
void get_local_bbox(const Object &obj1,
	const Object &obj2,Eigen::MatrixXf &local_bbox);

void get_bbox_velocity(int label,const Eigen::MatrixXf &bbox1,
	const Eigen::MatrixXf &bbox2,Eigen::MatrixXf &v);

}

#endif